# This uses piscan() to generate another "Irrational" piece. # Patch changes are algorithmically generated from the digits of pi. function irrational_too(pos) { if ( nargs() < 1 ) pos = 1 digits = pidigits() nsecs=3*60+14 leng=nsecs*2b r = '' nnotes = 31 * 2 sect = 16b for ( n=0; n<12; n++ ) { pos += digits[n] r |= scaleng(piscan(pos, digits[n] * nnotes, sect, 'c', nsecs, 0),leng) } r.length=leng print("After scans...") nt = 'c' seq = '' for ( n=0; n<12; n++ ) { # alternate positive and negative transposes seq += transpose(nt, (2*(n%2)-1) * digits[n]) } r = scadjustseqinplace(r,scaleng(seq,leng),scale_aeolian()) r = transposeseqinplace(r,scaleng(seq,leng)) # Get the notes into a reasonable range r = octavefence(r,32,96) r = transpose(r,-12) # Make sets of patch changes, evenly spaced. pos = 314 patches = '' for ( n=0; n